package com.cmc.cloud.cmclink.doc.rpcservice;

import java.util.List;
import java.util.Map;

import com.cmc.cloud.cmclink.bdt.api.base.dto.resp.VesselNameDataRespDTO;
import com.cmc.cloud.cmclink.doc.entity.BlnoDO;
import com.cmc.cloud.cmclink.svl.api.base.resp.VoyQueryRespDTO;

/**
 * 基础数据船名数据转换
 *
 * @author dev89
 * @date 2025/07/18 09:00
 */
public interface VesselTransferService {

    /**
     * 获取基础数据船名数据
     * @param vesselCode 船名
     * @return 基础数据船名数据
     */
    List<VesselNameDataRespDTO> getVesselNamesData(String vesselCode);

    /**
     * 获取ETD时间
     *
     * @param blnoDO 提单请求参数
     * @param laneCode laneCode
     * @return ETD时间
     */
    String getEtdByVoyage(BlnoDO blnoDO, String laneCode);

    /**
     * 获取ETD时间
     *
     * @param blnoDO 提单请求参数
     * @param laneCode laneCode
     * @return ETD时间
     */
    VoyQueryRespDTO getVoyByVoyage(BlnoDO blnoDO, String laneCode);

    /**
     * 获取船名信息
     *
     * @param vesselCodeList 船名编码
     * @return map
     */
    Map<String, VesselNameDataRespDTO> getVesselDataByCodes(List<String> vesselCodeList);
}
